﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Windows.Forms;

namespace GUI.Danhmuc.ChitietDanhmuc
{
    using EXT;
    using BLL;
    using DAL.Entities;

    public partial class frmChitietNoidungthuchi : GUI.Danhmuc.ChitietDanhmuc.frmInputChitietDanhmuc
    {
        public frmChitietNoidungthuchi()
        {
            InitializeComponent();
        }

        DanhmucBLL Danhmuc_BLL = new DanhmucBLL();
        DataTable dt = new DataTable();

        public void ResetInput()
        {
            ckeShow.EditValue = false;
            txtName.EditValue = null;
            txtNote.EditValue = null;
        }

        public void ClearDataBinding()
        {

            ckeShow.DataBindings.Clear();
            txtName.DataBindings.Clear();
            txtNote.DataBindings.Clear();
        }

        public void DataBindingControl()
        {
            ckeShow.DataBindings.Add("EditValue", dt, ".Show");
            txtName.DataBindings.Add("EditValue", dt, ".Name");
            txtNote.DataBindings.Add("EditValue", dt, ".Note");
        }

        public void Load_Danhsach()
        {
            dt = Danhmuc_BLL.Danhmuc_Select_By_Kind_All("Noidungthuchi");
            if (dt != null)
            {
                if (dt.Rows.Count > 0)
                {
                    gcDanhsach.DataSource = dt;
                    palDanhsach.Text = string.Format("Danh sách___Có : {0} nội dung thu chi", dt.Rows.Count);
                    ClearDataBinding();
                    DataBindingControl();
                }
                else
                {
                    gcDanhsach.DataSource = null;
                    palDanhsach.Text = "Danh sách___Chưa có nội dung thu chi nào";
                    ClearDataBinding();
                    ResetInput();
                }
            }
        }

        private void frmChitietNoidungthuchi_Load(object sender, EventArgs e)
        {
            Load_Danhsach();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            var frm = new frmNoidungthuchi();
            frm.MyEvent_LoadData_Chitiet += new MyEvent_LoadData(frm_MyEvent_LoadData_Chitiet);
            frm.ShowDialog();
        }

        public event MyEvent_LoadData MyEvent_LoadData_LoadTree = null;

        void frm_MyEvent_LoadData_Chitiet(object sender, ELoadData e)
        {
            if (e.IsLoadData)
            {
                Load_Danhsach();
                if (MyEvent_LoadData_LoadTree != null)
                {
                    MyEvent_LoadData_LoadTree(this, new ELoadData() { IsLoadData = true });
                }
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            var Id = gvDanhsach.GetFocusedRowCellValue("Id").GetGuid();
            if (Id != Guid.Empty)
            {
                var Nhanvien_BLL = new NhanvienBLL();
                if (!Nhanvien_BLL.IsExistsShowTrue(Id))
                {
                    if (DevExpress.XtraEditors.XtraMessageBox.Show("Bạn có chắc muốn xóa nội dung thu chi này không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        if (Danhmuc_BLL.Danhmuc_Delete_By_Id(Id))
                        {
                            Load_Danhsach();
                            DevExpress.XtraEditors.XtraMessageBox.Show("Đã xóa nội dung thu chi", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            gcDanhsach.Focus();
                        }
                        else
                        {
                            if (Danhmuc_BLL.Danhmuc_Delete_Update(new Danhmuc() { Id = Id, Show = false }))
                            {
                                Load_Danhsach();
                                DevExpress.XtraEditors.XtraMessageBox.Show("Đã ẩn nội dung thu chi", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                gcDanhsach.Focus();
                            }
                            else
                            {
                                DevExpress.XtraEditors.XtraMessageBox.Show("Không thể xóa\n\n Kiểm tra kết nối với CSDL", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                gcDanhsach.Focus();
                            }
                        }
                    }
                }
                else
                    DevExpress.XtraEditors.XtraMessageBox.Show("Nội dung thi chi này hiện vẩn còn đang sử dụng nên không thể xóa", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                DevExpress.XtraEditors.XtraMessageBox.Show("Chọn nội dung thu chi muốn xóa", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                gcDanhsach.Focus();
            }
        }
    }
}
